草庐IT

SQL INSERT INTO SELECT 语句

全部标签

sql - 为什么在sql语句中使用COALESCE()?

我正在重构一些旧代码并偶然发现了这个命名查询(它在mysql之上使用hibernate):deleteFfromfooFinnerjoinuserDUonF.user_id=DU.idwhere(COALESCE(:userAlternateId,null)isnullorDU.alternate_idlike:userAlternateId)and(COALESCE(:fooId,null)isnullorF.foo_idlike:fooId)and((COALESCE(:fromUpdated,null)isnullorF.updated_at>=:fromUpdated)and(

mysql - 我可以不使用 View 直接加入 SELECT 语句吗?

是否可以在不创建View的情况下执行以下操作?IE。直接加入这些SELECT?CREATEVIEWtemp_firstASSELECTMIN(DATE)ASmindate,idFROMmytableGROUPBYid#SELECT*,t.mindateFROMaggregate_analysisaJOINtemp_firsttONt.id=a.idWHERE(....)ORDERBYmindateDESC 最佳答案 您应该能够用子查询/子选择替换选择中的View引用。看看SubqueriesintheFROMClauseSubque

sql - MySQL MyISAM 更新语句是否锁定表并阻止读取?

我有一个MyISAM结构的MySQL数据库。我知道更新语句锁定了表,但锁定是阻止读取还是只是阻止其他人插入、删除和更新表? 最佳答案 来自http://dev.mysql.com/doc/refman/5.1/en/internal-locking.html:MySQLusesrow-levellockingforInnoDBtables,andtable-levellockingforMyISAM,MEMORY,andMERGEtables.因此您将拥有一个表级写锁,这意味着只有您可以根据http://dev.mysql.com/

mysql:如何提高此 mysql select 语句的性能

我创建了一个sql表,其中我在磁盘上索引了文件。表中有超过100万条记录。我已经为ext和size添加了索引,但是执行这个查询仍然需要一分钟多的时间,它告诉我ext使用的空间量。如何提高此选择的性能?selectext,ROUND((sum(size)/(1073741824)))asTotalSizeGB,count(*)asCountfromfileindexgroupbyextorderbyTotalSizeGBdesc;解释输出:||*id*||*select_type*||*table*||*type*||*possible_keys*||*key*||*key_len*||

mysql - 在 Toad for MySQL 中执行 SELECT 语句时出错

我尝试在Toad中执行简单的SELECT语句时遇到此错误MySql.Data.Types.MySqlConversionExceptionUnabletoconvertMySQLdate/timevaluetoSystem.DateTime有什么问题吗? 最佳答案 这可能意味着以下两个常见问题之一:1)零日期,在MySQL中为0000-00-00。MySQL允许您将它们存储为标记0日期,您甚至可以使用0001-01-01,但并非所有驱动程序或下游程序都可以处理它们。添加到连接字符串AllowZeroDatetime=true;另一种

php - 这个MySQL语句有什么问题?

$my->query("UPDATEideasSETcategory='DocumentOptions',category_id='4',status='Released',status_id='3',title='SupportforiPad',idea='AddsupportforiPad.AllowuploadsanddownloadsviatheanonymousAppforiPhoneandiPad.',release='0',release_date=''WHEREid='225'");$my是一个自定义类,其中包含许多其他mysql命令。为了证明它工作正常,它对以下查询非

mysql - 是否有创建空集的简单 SELECT 语句?

是否有一种简单易行的方法来创建具有指定列但零行的结果表?在集合论中,这称为空集,但由于关系数据库使用多维集,因此该术语并不完全适用。我已经尝试过这两个查询,但都只提供一行而不是零行:选择''作为ID;SELECTnullASID;但我想要的是与此查询相同的结果:SELECTIDFROMsometableWHEREfalse;我正在寻找一种更优雅的方式,因为我不想涉及表,因此查询独立于任何数据库方案。此外,通用查询可能会更快一些(对于这样的查询来说并不重要)。 最佳答案 SELECT"ID"LIMIT0;没有任何真实的表格。请注意,大

php - 删除重复项并更新唯一的一个语句中的所有内容?

CREATETABLEhostname_table(idINTNOTNULLAUTO_INCREMENT,hostnameCHAR(65)NOTNULL,interval_avgINT,last_updateDATETIMENOTNULL,numb_updatesINT,PRIMARYKEY(id))我有这张表,我向其中导入了500-600k行数据。我在写入数据库时​​不检查重复项,因为我想知道每个主机有多少重复项,并且我还想知道所述主机名每次更新之间的间隔。hostname_table中的示例值:idhostnameinterval_avglast_updatenumb_update

java - 如何为 SQL 查询转义字符串(没有准备好的语句)

我知道准备语句的威力,但我不能在这里使用它。我通过HTTP而不是通过JDBC将sql查询发送到外部服务器。如何为SQL查询转义字符串?有办法通过JDBC做到这一点吗?或者我应该为此使用自定义类/函数?附注我还连接到其他数据库,因此我可以使用JDBC函数。 最佳答案 这听起来很不安全。如果您通过HTTP发送SQL语句,那么您可能会受到中间人攻击(以及其他攻击)的危害。除此之外,任何普通水平的程序员都可以尝试对您的数据库执行恶意SQL,如果他们看到您正在发送SQL语句。他们可以创建用户、更改密码、检索敏感数据...您确定这是处理问题的最

php - 将 mySQL 插入和更新语句切换为 PDO 准备语句以防止 SQL 注入(inject)

我正在尝试将这些mySQlINSERTINTO和Update语句切换为PDO准备语句(主要是为了防止SQL注入(inject)),但我在正确使用语法方面遇到了一些困难。我目前使用2种类型的INSERT/Update语句:声明1-名称是硬编码的$qry="INSERTINTOcustomer_info(fname,lname,email,user_name,password)VALUES('$_POST[fname]','$_POST[lname]','$_POST[email]','$user_name','".sha1($salt+$_POST['password'])."')";$